#include<bits/stdc++.h>
using namespace std;

int main(){
    int n;
    cin>>n;
    int m;
    while(n--){
        cin>>m;
        for(int i=1;i<=m;i++){
            if(i%2==1){
                cout<<"1";
            }else{
                cout<<"2";
            }
            if (i != m) {
                cout << ' ';
            }
        }
        cout<<endl;
    }

    return 0;
}

//链接：https://ac.nowcoder.com/acm/contest/102896/A
//来源：牛客网
//
//### 题目描述
//Askalana因刚教完猫猫认字识数魔力大伤而不敌，打开传送门逃往了异世界，Askalana魔力耗尽，卒。
//这人太坏，折磨你不说还折磨这么可爱的猫猫，你想。于是你想丢下Askalana离开自己找回去的路。一天后，你发现这个世界竟不知空间魔法为何物，何况回家。于是你又去给她从小土包里挖了出来。
//你们找到了城里的冒险家协会，准备给Askalana补充魔力，助力她打赢复活赛。
//从冒险家协会购买到的情报显示，城外的一座遗迹里有一眼魔泉，正是补魔的好地方，你和猫猫决定就带Askalana去这里了！
//
//要打开遗迹，需要解开遗迹门口的石子谜题。一共有n个空格子和3×n颗石子，你需要构造一个方案，向每一个空格子中放入石子，使得相邻格子中的石子数之差的绝对值恰好为1。更具体地，对于第i(1 < i < n)个格子，记你在其中放入了ai颗石子，则需要满足|ai - 1 - ai| = 1、且|ai - ai + 1| = 1。
//石子可以不用完，但是每一个格子都不能为空。可以证明的是，这样的构造方案一定存在，输出任意一种即可。
//
//### 输入描述:
//每个测试文件均包含多组测试数据。第一行输入一个整数T(1 ≤ T ≤ 10³) 代表数据组数，每组测试数据描述如下：
//在一行上输入一个整数n(1 ≤ n ≤ 2×10⁵) 代表空格子数量。
//
//除此之外，保证单个测试文件的n 之和不超过2×10⁵。
//
//### 输出描述:
//对于每一组测试数据，新起一行。输出n 个整数，代表你构造的方案。
//如果存在多个解决方案，您可以输出任意一个，系统会自动判定是否正确。注意，自测运行功能可能因此返回错误结果，请自行检查答案正确性。